package com.whoimi.admin.entity;

import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.Table;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * @author whoimi
 * @since 2025-07-30T11:13:47.358573500
 */

@Table(name = "sys_notice", schema = "wiic_admin")
public class Notice implements Serializable {

    @Serial
    private static final long serialVersionUID = 298197607337570055L;

    @Id
    @Column("id")
    private Long id;

    /**
     * 通知标题
     */
    @Column("title")
    private String title;

    /**
     * 通知内容
     */
    @Column("content")
    private String content;

    /**
     * 通知类型（关联字典编码：notice_type）
     */
    @Column("type")
    private String type;

    /**
     * 通知等级（字典code：notice_level）
     */
    @Column("level")
    private String level;

    /**
     * 目标类型（1: 全体, 2: 指定）
     */
    @Column("target_type")
    private Boolean targetType;

    /**
     * 目标人集合（多个使用英文逗号,分割）
     */
    @Column("target_users")
    private String targetUsers;

    /**
     * 发布人
     */
    @Column("publisher")
    private String publisher;

    /**
     * 发布状态（0: 未发布, 1: 已发布, -1: 已撤回）
     */
    @Column("publish_status")
    private Boolean publishStatus;

    /**
     * 发布时间
     */
    @Column("publish_time")
    private LocalDateTime publishTime;

    /**
     * 撤回时间
     */
    @Column("revoke_time")
    private LocalDateTime revokeTime;

    /**
     * 创建人
     */
    @Column("create_by")
    private String createBy;

    /**
     * 创建时间
     */
    @Column("create_time")
    private LocalDateTime createTime;

    /**
     * 更新人ID
     */
    @Column("update_by")
    private String updateBy;

    /**
     * 更新时间
     */
    @Column("update_time")
    private LocalDateTime updateTime;

    /**
     * 是否删除（0: 未删除, 1: 已删除）
     */
    @Column("is_deleted")
    private Boolean isDeleted;

    public Long getId() {
        return this.id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getTitle() {
        return this.title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getContent() {
        return this.content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getType() {
        return this.type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getLevel() {
        return this.level;
    }

    public void setLevel(String level) {
        this.level = level;
    }

    public Boolean getTargetType() {
        return this.targetType;
    }

    public void setTargetType(Boolean targetType) {
        this.targetType = targetType;
    }

    public String getTargetUsers() {
        return this.targetUsers;
    }

    public void setTargetUsers(String targetUsers) {
        this.targetUsers = targetUsers;
    }

    public String getPublisher() {
        return this.publisher;
    }

    public void setPublisher(String publisher) {
        this.publisher = publisher;
    }

    public Boolean getPublishStatus() {
        return this.publishStatus;
    }

    public void setPublishStatus(Boolean publishStatus) {
        this.publishStatus = publishStatus;
    }

    public LocalDateTime getPublishTime() {
        return this.publishTime;
    }

    public void setPublishTime(LocalDateTime publishTime) {
        this.publishTime = publishTime;
    }

    public LocalDateTime getRevokeTime() {
        return this.revokeTime;
    }

    public void setRevokeTime(LocalDateTime revokeTime) {
        this.revokeTime = revokeTime;
    }

    public String getCreateBy() {
        return this.createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public LocalDateTime getCreateTime() {
        return this.createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }

    public String getUpdateBy() {
        return this.updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    public LocalDateTime getUpdateTime() {
        return this.updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    public Boolean getIsDeleted() {
        return this.isDeleted;
    }

    public void setIsDeleted(Boolean isDeleted) {
        this.isDeleted = isDeleted;
    }

}
